package org.summer.lawyer.pay.client;

import org.summer.lawyer.constant.enums.PaymentMethod;
import org.summer.lawyer.domain.vo.paychannel.PayChannelVo;

/**
 *
 */
public interface PayClientFactory {

    /**
     * 获取支付客户端
     */
    PayClient getPayClient(Long channelId);

    /**
     * 创建支付客户端
     */
     void createOrUpdatePayClient(PayChannelVo vo);

    /**
     * 注册支付客户端
     */
    void registerPayClient(PaymentMethod paymentMethod, Class<?> payClientClass);
}
